Methods and systems for network configuration

ABSTRACT

Network and device configuration systems and methods are described. In an embodiment, a first user interface configured to receive from a user configuration information regarding a first network provided. Program code stored in computer accessible memory is configured to generate a barcode that includes information related to the first network configuration information, wherein the barcode can be scanned by a device having a barcode scanner and a network interface to configure the network interface to access the first network.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent Ser. No. 13/303,577,filed Nov. 23, 2011, which is a continuation of U.S. patent Ser. No.12/982,445, filed Dec. 30, 2010, now U.S. Pat. No. 8,066,187, which is acontinuation of U.S. patent Ser. No. 11/934,573, filed Nov. 2, 2007, nowU.S. Pat. No. 7,861,933, which claims benefit of priority to U.S. PatentApplication No. 60/856,993, filed Nov. 6, 2006, the content of which isincorporated herein in its entirety.

STATEMENT REGARDING FEDERALLY SPONSORED R&D

Not applicable.

PARTIES OF JOINT RESEARCH AGREEMENT

Not applicable.

REFERENCE TO SEQUENCE LISTING, TABLE, OR COMPUTER PROGRAM LISTING

Not applicable.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is related to electronic devices, and inparticular, to methods and systems for configuring electronic devices.

2. Description of the Related Art

With the rapid increase in networkable consumer electronic systems, suchas Internet radios, televisions with computer interfaces, and the like,there has been a rapid increase in consumer frustration regarding theconfiguration of such electronic systems so as to be able to access anetwork, such as the Internet.

For example, a conventional network configuration process (wherein thetarget network is the Internet), may involve accessing a networkconfiguration user interface, entering the name of an Internet Serviceprovider, specifying a network connection-type, specifying whether theconnection is to be made via a broadband connection that needs a username and password, via an “always-on” broadband connection that does notrequire a sign-in, or via a connection is to be made using a dial-upmodem, specifying security related information, etc. Such a conventionalprocess is difficult to perform on electronic devices having smallscreens not capable of displaying extensive user interfaces and/orhaving limited keyboards (e.g., that do not have an alphanumerickeyboard).

SUMMARY OF THE INVENTION

Example embodiments are described that enable configuration of devicesettings, such as a network interface, using a printed visual code reador accessed by the device.

An example embodiment provides a network configuration system,comprising a first user interface configured to receive from a userconfiguration information regarding a first network. The system furtherincludes program code stored in computer readable memory configured togenerate a barcode that includes information related to the firstnetwork configuration, where the barcode can be scanned by a device thathas a barcode scanner that converts the barcode into digital data andthe device uses at least a portion of the data to configure a networkinterface to access the first network.

An example embodiment provides a configuration system, comprising: afirst user interface configured to receive from a user configurationinformation regarding a first device associated with the user; andprogram code stored in computer accessible memory configured to generatea visual code that includes information related to the first deviceconfiguration information, wherein the visual code can be read by thefirst device to configure, at least in part, the first device.

An example embodiment provides a method of providing networkconfiguration information, comprising: causing at least in part a firstuser interface to be displayed to a user on a user terminal, the firstuser interface including fields for receiving configuration informationfor a first electronic device network interface; causing at least inpart information provided by the user via the first user interface to beencoded in computer readable optical code, wherein the optical code canbe read by the first electronic device using an optical image capturedevice; and causing at least in part the optical code to be displayedand/or printed via the user terminal, wherein the optical code isconfigured to be scanned to obtain the network interface configurationinformation.

An example embodiment provides a configurable system, comprising: aprocessor; memory coupled to the processor; a computer program stored inthe memory that is executable by the processor; a network interface; andan optical reader, wherein the computer program is configured to utilizeinformation read by the optical reader to configure network settings.

An example embodiment provides a method of configuring a system,comprising: causing, at least in part, an optical code to be read by thesystem using an optical reader that converts image information todigital data; and causing, at least in part, the digital data to be usedto configure the operation of at least a network connection.

An example embodiment provides a method of configuring an electronicdevice, comprising: using an optical reader to read a visual code toobtain data encoded therein; and configuring a network connection of theelectronic device using at least a portion of the data.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described withreference to the drawings summarized below. These drawings and theassociated description are provided to illustrate example embodiments ofthe invention, and not to limit the scope of the invention.

FIG. 1 illustrates an example configuration flow chart.

FIGS. 2A-C illustrate example user interfaces for receiving devicesettings.

FIGS. 3A-C illustrate example user interfaces displayed by a devicebeing configured.

FIG. 3D illustrates an example optical code format.

FIG. 4 illustrates an example networked system,

FIG. 5 illustrates an example configurable electronic system.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Example systems and methods are described herein for configuring networksettings on a device based on the characteristics of an availablenetwork and/or for setting user preferences for the device. Certainembodiments utilize visual indicia read by an optical reader to performnetwork configuration and/or to set user preferences for an electronicdevice.

As discussed above, certain conventional approaches for configuring anelectronic device to access a network are overly complex for a typicalconsumer. Further, many conventional approaches rely on the devicehaving a relatively large and expensive screen for displaying complexand detailed user interface, and having a relatively large keyboard(e.g., an alphanumeric keyboard) for entering in network configurationdata. It would be advantageous to make it easier for a consumer toconfigure a consumer electronic device and to reduce the hardwarerequirements of the electronic device.

As discussed below, certain embodiments encode network configurationinformation and/or user preferences for an electronic device in anoptical/visual code (e.g., a barcode) and utilize an optical reader,such as a barcode scanner, coupled to the electronic device to read theoptical code. The electronic device then performs the networkconfiguration and/or configures other device settings in accordance withthe user preferences.

Throughout the following description, the term “Web site” is used torefer to a user-accessible network site that implements the basic WorldWide Web standards for the coding and transmission of hypertextualdocuments. These standards currently include HTML (the Hypertext MarkupLanguage), HTTP (the Hypertext Transfer Protocol), Java, and XML. Itshould be understood that the term “site” is not intended to imply asingle geographic location, as a Web or other network site can, forexample, comprise multiple geographically distributed computer systemsthat are appropriately linked together.

Furthermore, while the following description relates to an embodimentutilizing the Internet and related protocols, other networks and otherprotocols may be used as well. In addition, unless otherwise indicated,the functions described herein may be performed by executable code andinstructions running on one or more general-purpose computers. Forexample, program code stored in non-volatile and/or volatile memory caninclude one or more instructions, which can optionally be straight-linecode and/or organized as modules or objects configured to receive andprocess inputs, provide outputs, and to selectively store data. However,the present invention can also be implemented using special purposecomputers, state machines, and/or hardwired electronic circuits. Whilecertain example processes are described herein, not all the processstates need to be performed, and the order of the process can be varied.

While certain example embodiments are described with reference tobarcodes (e.g., linear barcodes, stacked barcodes, matrix barcodes,etc.) and barcode scanners, other computer readable indicia (e.g., dots,concentric circles, text codes hidden within images, text readable usingoptical character recognition systems, etc.) and scanners/image capturedevices can be used. For example, a scanner/image capture device can bea laser scanner (e.g., including light source, a lens and a photoconductor translating optical impulses into electrical ones), a stillframe camera, a video capture device, etc. While certain types ofnetworks may be referred to (e.g., an IEEE 802.11 wireless network)other networks may be utilized (e.g., cellular networks, IEEE 802.16networks, etc.). While the illustrated user interfaces may user certainlanguage and provide certain user instructions, other language andinstructions may be used.

In an example embodiment, a networked user terminal (e.g., a personalcomputer, an interactive television, a smart phone, a personal digitalassistant, a networked-enabled digital music/video player, etc.) scansfor existing wireless networks (or otherwise accesses informationregarding local networks) and displays (e.g., via a computer systemdisplay) a listing of available networks (e.g., one or more IEEE 802.11wireless networks) to the user. By way of example, a WiFi scanner can beused to discover wireless nodes (e.g., access point and wirelessclients). The user chooses (e.g., by clicking on a network entry in thenetwork listing) which network the user wants to configure a seconddevice to access. By way of example, the second device has a barcode orother optical scanner. By way of further example, the second device canbe a processor-based terminal, including a display, a keyboard, memory,a wired and/or wireless network interface, and a scanner/camera.

Optionally, the second device can be configured to be used to scanproduct information, such as that encoded in barcodes on household orbusiness consumable items, such as food packaging. By way of furtherexample, the second device can be a kitchen appliance (e.g., an oven,refrigerator, blender, television, computer, a waste receptacle, etc.)including or coupled to an optical scanner and including a networkinterface.

A user interface is provided that enables a user to input/select certainnetwork information (e.g., what network the second device is to use,what is the security method being used, such as WEP, a network password,a network address, a proxy setting, etc.). Some or all of theinformation may be prepopulated based on information stored on oraccessed by the computer system. The user interface may be provided byan application stored on the user's computer system or may be accessedover a network from a remote server (e.g., over the Internet, whereinthe user interface is provided as a Web page or pages by a Web pageserver).

Additionally, a user interface is optionally provided via which a usercan input device preferences, such as energy management settings (e.g.,when or after what period of non-use the second device is to power downor enter a lower power consumption mode, such as by turning off thesecond device display until the user presses a button or otherwise usesthe second device), display brightness, display contrast, and/or otherpreferences. The input/selected information can be stored locally inmemory on the user computer system and/or remotely or a remote computersystem (e.g., the computer system that provided the user interface).

Based on the selected/input information (e.g., configuration settingsand/or preferences), the barcode generation application generatesbarcodes or other computer readable indicia/codes which can be printed(e.g., by a printer connected to the user computer system) in responseto a user instruction or otherwise. The printed barcode(s) are thenplaced beneath or otherwise positioned with respect to the second devicescanner, which then scans the code. The second device then configuresits network setting and/or preference settings in accordance with thescanned code.

FIG. 1 illustrates an example configuration process for a targetelectronic device, (e.g., the scanning system described in U.S. Pat. No.7,165,721, incorporated herein by reference, or other electronicdevice). The target device optionally has a relatively small display(e.g., less than 10 inches diagonal), and may have a relatively smallkeyboard (e.g., 9 keys or less, 5 keys or less, etc.). Optionallyinstead, the target device has a relatively large display and arelatively large keyboard. At state 102, a user accesses a websitehosted by a remote system (e.g., an electronic commerce system, such asone that tracks user consumption of items and processes item ordersreceived over a network or otherwise) via a terminal (e.g., a personalcomputer) coupled to a Website. The terminal may be equipped with arelatively large display (e.g., 10 inches or more diagonally) and may befurther equipped with an alphanumeric keyboard.

The user then proceeds to register to create an account (or if the useralready has an account, the user can log in to edit/modify accountinformation). For example, the user may be asked to provide a user name,contact information (e.g., email, physical address, phone number, etc.),identification information regarding the device to be configured (e.g.,a part number and/or a serial number), payment information (e.g., acredit card number, a debit card number, etc.), and/or otherinformation. In addition, the user may be asked to provide userpreference information.

For example, if the target electronic device is intended to collectinformation regarding items consumed by the user and to generateshopping lists for replacement items, the user may be asked to specifyuser preferences related to how often to reorder items, who orders areto be placed with (e.g., which retailer/supermarket), how items are tobe delivered, when items are to be delivered, what types of statusnotifications are to be automatically provided to the user, etc. Otherexample user preferences are described in U.S. Pat. No. 7,165,721.

Optionally, a user interface is provided via which the user can specifydevice settings. For example, the user can specify when (e.g., how longafter the last use of the device) the device should enter a low powerconsumption mode (e.g., turn off display backlighting, let device harddrive spin down, turn off network radio, etc.). The information providedby the user at state 102 is stored in a user database or other datastore.

In addition, a user is requested to provide/select network settings viaa network configuration user interface. For example, the user may beasked to provide (by typing in, selecting from a menu, or otherwise)some or all of the following and/or other information:

-   -   Network name;    -   Network security level;    -   Password (if the security level necessitates a password);    -   Network address (e.g., IP address, subnet mask, router, DNS        primary, DNS secondary, or an indication that the system is to        automatically obtain the network address);    -   Proxy name and port number (if a proxy is being used).

When the user has provided the network configuration data, the user canselect a “save” control and the data is stored locally on the userterminal and/or in the user database.

At state 104, the remote system (or the terminal) encodes the networkconfiguration information using a barcode generator and preferencesrelated to the electronic device into an optical code (e.g., a barcode).For example, the network name, security level, password, IP address,subnet mask, router, DNS, Proxy name, proxy port number can be encodedinto a barcode, as illustrated in FIG. 3D.

Optionally, the system can encode other types of information into thebarcode and/or additional barcodes. For example, the system can encode aUniform Resource Locator (URL) or other locator which the device is toaccess and obtain information or programs. For example, the URL canaccess a Web site via which a new version of an operating system orprogram for the device can be downloaded to and installed by the device.By way of further example, the URL can access a site via which an itemcatalog or catalog data (or other database) can be downloaded.

At state 106, the remote system transmits the optical code in digitalform (e.g., as a digital image or as data that can be converted by theterminal into an image) over the network to the user terminal. At state108, the user prints out the optical code using a printer (e.g., a laserprinter, an ink jet printer, a thermal printer, a sublimation printer,etc.) coupled to the user terminal (optionally, the user can scan thecode directly from the terminal display without printing out the opticalcode).

At state 110, the user scans the optical code (e.g., from the printedhardcopy version or from the terminal display) using an optical scannercoupled to the electronic device. The scanner translates the opticalcode to digital data which is then stored in device memory. The digitaldata is provided/accessed by a corresponding program hosted on thedevice. The corresponding program then utilizes the digital dataappropriately. For example, at state 112, a network configurationprogram accesses the network configuration portion of the data andconfigures the network interface accordingly. At state 114, the deviceconnects to a network. At state 116, the device communicates with thesystem.

Certain example user interfaces with now be described with reference toFIG. 2AC. FIG. 2A illustrates an example user interface that can beutilized by a user to provide network configuration information to thesystem. The user interface display instructions for the user regardingproviding network settings via the user interface. Corresponding fieldsare provided to receive the network settings. In this example, thefollowing fields are provided (although other fields can be provided aswell):

-   -   Network name;    -   Security level;    -   Password;    -   Automatically obtain network address check box (to instruct the        device to automatically obtain the network address using, in        this example, Dynamic Host Configuration Protocol);    -   Manually enter network address checkbox (to enable the user to        enter network address information);    -   Fields for receiving manually entered network address        information (IP address field, Subnet Mask field, Router        address, Primary DNS, Secondary DNS);    -   Proxy name field;    -   Proxy port address.

A control is provided via which the user can instruct the system to savethe network configuration system information;

A control is provided via which the user can skip entering data via theillustrated user interface (e.g., when the user would rather performnetwork configuration directly on the target device).

FIG. 2B illustrates a user interface presented once the user hascompleted the registration process. The user interface further instructsthe user to print out the barcodes corresponding to the network settingsand to scan the barcodes via the target device.

FIG. 2C illustrates an example print out of the barcodes correspondingto the network configuration data. In addition to barcode data, humanreadable text is provided including, in this example, the network name,security level, and password specified by the user. Other user provideddata can be textually provided as well. Instructions on the use of hebarcode are also provided.

FIGS. 3A-C illustrate example user interfaces for adding the targetdevice to the user's network that are presented on an example targetdevice display. In this example, the device includes three buttons whosefunctions may change and whose current functions are described bytext/labels presented via the device display. In addition two buttons offixed function with fixed labels are provided (a voice reminder/memobutton to initiate recording of a voice memo/shopping list, and “ordernow” button to cause a substantially immediate order to be placed for apending shopping list).

Referring to FIG. 3A, the example user interface asks the user if theuser would like to setup a wireless network connection by having thedevice scan the printed wireless settings. The programmable buttonsfunction respectively as a “yes” input, a “no” input, and a “back”button (to return to a previous menu). If the user activates the “yes”button, the example menu illustrated in FIG. 3B is presented. The userinterface instructs the user to scan the wireless network settingbarcodes printout and to press the “done” control when complete. One ofthe buttons is labeled “done” and another button is labeled “back”.

If the user activates the “done” button, once the device configures thenetwork interface and successfully connects to a local network inaccordance with the settings specified in the barcode, the example userinterface displayed in FIG. 3C is presented on the device. Theillustrated user interface informs the user that the device hassuccessfully connected to the user's network and instructs the user toactivate a control to begin using the networked device.

FIG. 3D illustrates an example barcode in code 128 barcode format andthe relative position of the network setting information and of acalculated check digit. Code 128 is a linear symbology that encodesnumbers, text functions and the 128 ASCII character set (from ASCII 0 toASCII 128). A Code 128 barcode includes the following sections:

-   -   Quiet Zone;    -   Start Character;    -   Encoded Data;    -   Check Character;    -   Stop Character;    -   Quiet Zone.

The check character is calculated from a modulo 103 calculation of theweighted sum of all the characters.

Of course other barcode types can be used, including, withoutlimitation: UPC, Code 25, Code 39, Code 93, Code 11, ITF-14, Codablock,Code 16K, PDF417, Aztec Code, bCode, Code 16K, PDF417, etc.

FIG. 4 illustrates an example networked configuration. In this example,a system 404, which may host an online commerce website (e.g., ashopping website) is coupled to a network 402 (the Internet in thisexample). The system 404 includes a Web server that hosts userinterfaces for providing network settings, such as those described abovewith reference to FIGS. 2A-C. In addition, the system 404 in thisexample hosts a barcode generator that converts data provided by theuser via the user interfaces (and optionally other data as well, such asUniform Resource Locaters) into barcodes. The system can include a userdatabase storing user registration information (e.g., user contactinformation, payment information, etc.), user preferences, target deviceidentifiers, user specified network settings, barcode information, orderhistories, pending orders, electronic catalogs including iteminformation (e.g., name, cost, type, etc.), and/or other information.

User terminals 406, 414 (in this example, personal computers associatedwith two different users and located in different locations), access thesystem 404 via the Internet 402. The terminals 406, 414 in this exampleinclude full keyboards (including a key for each letter and for thenumbers 0-9, and well as keys for certain punctuations), displays, localmemory (e.g., a hard disk drive and/or FLASH memory, RAM, etc.), andnetwork interfaces (e.g., wired and/or wireless network interfaces). Assimilarly discussed above, the terminals 406, 414 can be used to accessuser interfaces, enter data, and receive communications provided by thesystem 404. The terminals 406, 414 may be equipped with browsers toaccess Web sites. For example, the terminals can display a barcodegenerated by the system 404 and provided via a webpage or via email. Theterminals 406, 414 are connected to corresponding printers 408, 416,which can be used to print the barcodes.

Wireless network access points 412, 420 provide wireless the targetdevices access to an Internet connection.

Target devices 410 (a touch screen portable personal digital assistantin this example) and 418 (a video game system in this example) includeor are coupled to optical scanners which can be used to scan thebarcodes, as discussed above.

FIG. 5 illustrates another example target device. The device includes anintegral barcode scanner 502, dedicated buttons 504, 506 (such as thefixed function buttons discussed above with respect to FIGS. 3A-C),programmable function buttons (such as the changeable function buttonsdiscussed above with respect to FIGS. 3A-C), a display 512, and anantenna 514. The device may include a processor, memory (e.g., amagnetic disk, FLASH memory, and/or RAM), a wired and/or wirelessnetwork interface, and an interface to removable memory. The processormay be coupled to the memory, network interface(s), display, andbuttons. The device memory may store programs, user interfaces and data,such as a product database. A program may be use optically read data(after being converted to digital data) to implement correspondingdevice settings (e.g., network settings, display settings, energyconservation settings).

Thus, described above are efficient methods and systems for performingdevice configuration, including network configuration, even when certainuser interface devices (e.g., a large screen, a full keyboard) arelacking.

It should be understood that certain variations and modifications ofthis invention would suggest themselves to one of ordinary skill in theart. The scope of the present invention is not to be limited by theillustrations or the foregoing descriptions thereof.

What is claimed is:
 1. A configurable computing system, comprising: acomputer device; and non-transitory computer readable memory havingprogram instructions stored thereon that when executed by the computingdevice cause the system to perform operations comprising: reading abarcode or other computer readable visual indicia; utilizing theinformation read from the barcode or other computer readable visualindicia to determine how to configure local wireless network settings ofa local wireless network interface of the configurable computing systemwithout a user having to manually key in the wireless network settingson the configurable computing system to enable the configurablecomputing system interface to access the local wireless network, whereinthe local wireless network settings include a local network passwordneeded to communicate over the local wireless network; using thedetermined local wireless network settings of the local wireless networkinterface of the configurable computing system to enable theconfigurable computing system interface to access the local wirelessnetwork without the user having to manually key in the wireless networksettings on the configurable computing system, wherein the wirelessnetwork settings are used to enable the configurable computing system tocommunicate over the local wireless network of the user.
 2. The systemas defined in claim 1, the operations further comprising receiving theinformation scanned from the barcode or other computer readable visualindicia from the configurable computing system.
 3. The system as definedin claim 1, wherein the received information scanned from the barcode orother computer readable visual indicia comprises: a proxy name, and aport number.
 4. The system as defined in claim 1, wherein the operationsare further configured to provide at least one user interface configuredto receive: a user name, user contact information, an identifier of theconfigurable computing system.
 5. The system as defined in claim 1,wherein the configurable computing system comprises: an optical sensor;the local network interface; and no more than nine physical keys.
 6. Thesystem as defined in claim 1, wherein the system is configured toreceive, over a network, the scanned information from the configurablecomputing system.
 7. A method comprising: receiving, at a configurablecomputing system comprising a local wireless network interface,information scanned from a barcode or other computer readable visualindicia; utilizing, by the configurable computing system, theinformation scanned from the barcode or other computer readable visualindicia to determine how to configure local wireless network settings ofthe local wireless network interface of the configurable computingsystem without a user having to manually key in the wireless networksettings on the configurable computing system to enable the configurablecomputing system interface to access the local wireless network; usingthe determined local wireless network settings of the local wirelessnetwork interface of the configurable computing system to enable theconfigurable computing system interface to access the local wirelessnetwork without the user having to manually key in the wireless networksettings on the configurable computing system, wherein the wirelessnetwork settings are used to enable the configurable computing system tocommunicate over the local wireless network of the user.
 8. The methodas defined in claim 7, the method further comprising receiving theinformation scanned from the barcode or other computer readable visualindicia from the configurable computing system.
 9. The method as definedin claim 7, wherein the received information scanned from the barcode orother computer readable visual indicia comprises: a proxy name, and aport number.
 10. The method as defined in claim 7, the method furthercomprising providing at least one user interface configured to receive:a user name, user contact information, an identifier of the configurablecomputing system.
 11. The method as defined in claim 7, wherein theconfigurable computing system comprises: an optical sensor; the localnetwork interface; and no more than nine physical keys. 12.Non-transitory computer readable media having program instructionsstored thereon that when executed by a computing system cause thecomputing system to perform operations comprising: receiving informationscanned from a barcode or other computer readable visual indicia;utilizing the information scanned from the barcode or other computerreadable visual indicia to determine how to configure local wirelessnetwork settings of a local wireless network interface of a configurablecomputing system without a user having to manually key in the wirelessnetwork settings on the configurable computing system to enable theconfigurable computing system interface to access the local wirelessnetwork, wherein the local wireless network settings include a localnetwork password needed to communicate over the local wireless network;using the determined local wireless network settings of the localwireless network interface of the configurable computing system toenable the configurable computing system interface to access the localwireless network without the user having to manually key in the wirelessnetwork settings on the configurable computing system, wherein thewireless network settings are used to enable the configurable computingsystem to communicate over the local wireless network.
 13. Thenon-transitory computer readable media as defined in claim 12, theoperations further comprising receiving the information scanned from thebarcode or other computer readable visual indicia from the configurablecomputing system.
 14. The non-transitory computer readable media asdefined in claim 12, wherein the received information scanned from thebarcode or other computer readable visual indicia comprises: a proxyname, and a port number.
 15. The non-transitory computer readable mediaas defined in claim 12, wherein the operations are further configured toprovide at least one user interface configured to receive: a user name,user contact information, an identifier of the configurable computingsystem.
 16. The non-transitory computer readable media as defined inclaim 12, wherein the configurable computing system comprises: anoptical sensor; the local network interface; and no more than ninephysical keys.